<?php
declare (strict_types = 1);

namespace app\admin\middleware;

use think\facade\Request;

class Auth
{
    /**
     * 处理请求
     *
     * @param \think\Request $request
     * @param \Closure       $next
     * @return Response
     */
    public function handle($request, \Closure $next)
    {
        // 获取当前控制器小写
        $controller = $request->pathinfo();

        // 没有登录且访问非登录页面时跳转到登录页面
        if (empty(session(config('admin.session_admin'))) && !preg_match('/^login\//', $controller)) {
            return redirect((string) url('/admin/login/index'));
        }

        // 已登录且访问登录页时
        if (!empty(session(config('admin.session_admin'))) && preg_match('/^login\//', $controller)) {
            return redirect((string) url('/admin/index/index'));
        }

        return $next($request);
    }
}
